package com.yida.gwj.deposit.domain.request.split;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Arrays;

/**
 * @author lqq
 * @date 2023-02-23
 */
@ApiModel("资金分户初始化 房屋对象")
public class GwjFundsSplitBusinessHouseRequest implements Serializable {
	private static final long serialVersionUID = 1L;

	@ApiModelProperty("业务房屋主键")
	@NotNull(groups = {UpdateDepositSize.class, UpdateDepositSize.class}, message = "请求参数有误[业务房屋ID]不能为空")
	private Long bizHouseId;

	@ApiModelProperty("缴款面积")
	@NotNull(groups = {UpdateDepositSize.class}, message = "缴款面积不能为空")
	private BigDecimal depositSize;

	@ApiModelProperty("补差")
	@NotNull(groups = {updateLackMoney.class}, message = "补差不能为空")
	private BigDecimal lackMoney;

	@ApiModelProperty("业务ID")
	@NotNull(groups = {updateLackMoney.class, UpdateDepositSize.class}, message = "请求参数有误[业务ID]为空")
	private Long bizId;

	@ApiModelProperty("是否选中")
	private String selectFlag;

	@ApiModelProperty("楼栋标识码字符串")
	private String buildCodeStr;

	@ApiModelProperty("规划用途")
	private String useType;

	@ApiModelProperty("房号")
	private String roomNum;

	private String[] buildCodes;

	@ApiModelProperty("判断是否根据remark查询")
	private String remarkFlag;

	@ApiModelProperty("是否是公用房屋")
	private String publicFlag;

	/**
	 * 分组校验
	 */
	public @interface UpdateDepositSize {
	}

	/**
	 * 分组校验
	 */
	public @interface updateLackMoney {
	}

	public String getPublicFlag() {
		return publicFlag;
	}

	public void setPublicFlag(String publicFlag) {
		this.publicFlag = publicFlag;
	}

	public String getBuildCodeStr() {
		return buildCodeStr;
	}

	public void setBuildCodeStr(String buildCodeStr) {
		this.buildCodeStr = buildCodeStr;
	}

	public String[] getBuildCodes() {
		return buildCodes;
	}

	public void setBuildCodes(String[] buildCodes) {
		this.buildCodes = buildCodes;
	}

	public String getRemarkFlag() {
		return remarkFlag;
	}

	public void setRemarkFlag(String remarkFlag) {
		this.remarkFlag = remarkFlag;
	}

	public String getSelectFlag() {
		return selectFlag;
	}

	public void setSelectFlag(String selectFlag) {
		this.selectFlag = selectFlag;
	}

	public String getUseType() {
		return useType;
	}

	public void setUseType(String useType) {
		this.useType = useType;
	}

	public String getRoomNum() {
		return roomNum;
	}

	public void setRoomNum(String roomNum) {
		this.roomNum = roomNum;
	}

	public Long getBizHouseId() {
		return bizHouseId;
	}

	public void setBizHouseId(Long bizHouseId) {
		this.bizHouseId = bizHouseId;
	}

	public BigDecimal getDepositSize() {
		return depositSize;
	}

	public void setDepositSize(BigDecimal depositSize) {
		this.depositSize = depositSize;
	}

	public BigDecimal getLackMoney() {
		return lackMoney;
	}

	public void setLackMoney(BigDecimal lackMoney) {
		this.lackMoney = lackMoney;
	}

	public Long getBizId() {
		return bizId;
	}

	public void setBizId(Long bizId) {
		this.bizId = bizId;
	}

	@Override
	public String toString() {
		final StringBuffer sb = new StringBuffer("GwjFundsSplitBusinessHouseRequest{");
		sb.append("bizHouseId=").append(bizHouseId);
		sb.append(", depositSize=").append(depositSize);
		sb.append(", lackMoney=").append(lackMoney);
		sb.append(", bizId=").append(bizId);
		sb.append(", selectFlag='").append(selectFlag).append('\'');
		sb.append(", useType='").append(useType).append('\'');
		sb.append(", roomNum='").append(roomNum).append('\'');
		sb.append(", buildCodes=").append(buildCodes == null ? "null" : Arrays.asList(buildCodes).toString());
		sb.append(", remarkFlag='").append(remarkFlag).append('\'');
		sb.append('}');
		return sb.toString();
	}
}
